/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package AppService;

import Facades.DatosclienteBeanRemote;
import Facades.UsuariosBeanRemote;
import VO.Datoscliente;
import VO.Tiposusuarios;
import VO.Usuarios;
import javax.naming.InitialContext;

/**
 *
 * @author Julian
 */
//@EJB(name="usuarios", beanInterface= UsuariosBeanRemote.class)
public class Login {
//@EJB private static UsuariosBean ubean;

    static public boolean verificardatos(String nombre, String pass) throws Exception {
        boolean result = false;
        Usuarios ubd = new Usuarios();

        try {
            InitialContext ctx1 = new InitialContext();
            UsuariosBeanRemote ubean = (UsuariosBeanRemote) ctx1.lookup("Facades.UsuariosBeanRemote");

            ubd = ubean.findid(nombre);
            if (ubd.getPass().equals(pass)) {
                result = true;
            }//*/
        } catch (Exception ex) {
            throw ex;
        }
        return result;
    }

    static public boolean crearusuarios(String nombrelogin, String pass, int tipo, String nombre, String apellido, String mail) throws Exception {
        boolean result = false;

        try {
        Usuarios ubd = new Usuarios(nombrelogin, pass);
        Tiposusuarios tipou = new Tiposusuarios(tipo);
        ubd.setIdTipo(tipou);
        Datoscliente datosc = new Datoscliente(nombrelogin, nombre, apellido, mail);

            InitialContext ctx1 = new InitialContext();
            UsuariosBeanRemote ubean = (UsuariosBeanRemote) ctx1.lookup("Facades.UsuariosBeanRemote");
            DatosclienteBeanRemote dbean = (DatosclienteBeanRemote) ctx1.lookup("Facades.DatosclienteBeanRemote");
            ubean.create(ubd);
            dbean.create(datosc);
            result=true;
                /*if(creardatos(nombrelogin, nombre, apellido, mail)){
                result = true;
                }
                else{
                    result=false;
                ubean.destroy(nombrelogin);
                }//*/
                
                /*try{
                dbean.create(datosc);
                result = true;
                }
                catch(Exception e){
                    result=false;
                ubean.destroy(nombrelogin);
                throw e;
                }//*/
  
        } catch (Exception ex) {
            result = false;
            throw ex;
        }

        return result;
    }

    static public  boolean creardatos(String nombrelogin,String nombre, String apellido,String mail) throws Exception{
        boolean result = false;

        Datoscliente datosc = new Datoscliente(nombrelogin, nombre, apellido, mail);
        try {
            InitialContext ctx1 = new InitialContext();
            //InitialContext ctx1 = (InitialContext) a;
            DatosclienteBeanRemote dbean = (DatosclienteBeanRemote) ctx1.lookup("Facades.DatosclienteBeanRemote");
            System.out.println(datosc);
            dbean.create(datosc);
            result = true;
        } catch (Exception ex) {
            result = false;
            throw ex;
        }
        return result;
    }

    static public boolean editarusuarios(String nombrelogin, String pass, String nombre, String apellido, String mail) throws Exception {
        boolean result = false;
        Usuarios ubdold = new Usuarios();
        Usuarios ubdnew = new Usuarios();


        

        Datoscliente datosold = new Datoscliente();
        Datoscliente datosnew = new Datoscliente();


        //Tiposusuarios tipou = new Tiposusuarios(tipo);
        //ubd.setIdTipo(tipou);
        //ubd.setDatoscliente(datosc);

        try {
            InitialContext ctx1 = new InitialContext();
            //InitialContext ctx1 = (InitialContext) a;
            UsuariosBeanRemote ubean = (UsuariosBeanRemote) ctx1.lookup("Facades.UsuariosBeanRemote");
            DatosclienteBeanRemote dbean = (DatosclienteBeanRemote) ctx1.lookup("Facades.DatosclienteBeanRemote");

            ubdold = ubean.findid(nombrelogin);
            ubdnew = ubean.findid(nombrelogin);
            ubdnew.setPass(pass);
            
            ubdnew.setIdTipo(ubdold.getIdTipo());

            datosold = dbean.findid(nombrelogin);
            datosnew = dbean.findid(nombrelogin);
            datosnew.setApellido(apellido);
            datosnew.setMail(mail);
            datosnew.setNombre(nombre);


            //ubean.edit(ubdnew);
            
            //ubean.destroy(nombrelogin);
            //dbean.destroy(nombrelogin);
            
            ubean.edit(ubdnew);
            try {
            System.out.println(datosnew);
            dbean.edit(datosnew);
            //    dbean.edit(datosnew);
            result = true;
            } catch (Exception e) {
                //ubean.edit(ubdold);
                ubean.edit(ubdold);
                //dbean.edit(datosold);
                result=false;
                throw e;
            }
            

        } catch (Exception ex) {
            result=false;
            throw ex;
        }

        return result;
    }

    static public Usuarios traerusuario(String id) throws Exception{
        Usuarios usuario = new Usuarios();

        try {
            InitialContext ctx1 = new InitialContext();
            UsuariosBeanRemote ubean = (UsuariosBeanRemote) ctx1.lookup("Facades.UsuariosBeanRemote");
            usuario = ubean.findid(id);
        } catch (Exception e) {
            throw e;
        }
        return usuario;
    }

    static public Datoscliente traerdatos(String id) throws Exception{
    Datoscliente datos = new Datoscliente();
        try {
             InitialContext ctx1 = new InitialContext();
             DatosclienteBeanRemote dbean = (DatosclienteBeanRemote) ctx1.lookup("Facades.DatosclienteBeanRemote");
             datos = dbean.findid(id);
        } catch (Exception e) {
            throw e;
        }
        return datos;
    }

}

